From f7e9df6a86f37c364d77b1011a745318967b2379 Mon Sep 17 00:00:00 2001 From: George Dunlap Date: Tue, 24 Apr 2012 18:51:56 +0100 Subject: [PATCH] xl, cpupools: Create empty pool if no cpus are specified Currently, if "xl cpupool-create" is called with no cpus configured, xl will choose a cpu at random from the list of unassigned cpus, and if no unassigned cpus are available, it will fail. This seems to me to be a poor interface. For one, it makes it impossible to create an empty cpupool using the xl command-line, except by creating a pool and then removing the cpus from it. For two, I don't think assigning a random cpu is a feature; it's not unreasonable for the user to specify which cpus to add to which pools. This patch changes the behavior of "xl cpupool-create" to create an empty pool if no cpus are specified. I believe this interface to be more expected and more script-friendly. Signed-off-by: George Dunlap Committed-by: Ian Jackson Acked-by: Ian Jackson --- tools/libxl/xl_cmdimpl.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index ff487498ea..588d4174a3 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -5718,20 +5718,8 @@ int main_cpupoolcreate(int argc, char **argv) libxl_cpumap_set(&cpumap, i); n_cpus++; } - } else { - n_cpus = 1; - n = 0; - libxl_for_each_cpu(i, freemap) - if (libxl_cpumap_test(&freemap, i)) { - n++; - libxl_cpumap_set(&cpumap, i); - break; - } - if (n < n_cpus) { - fprintf(stderr, "no free cpu found\n"); - return -ERROR_FAIL; - } - } + } else + n_cpus = 0; libxl_uuid_generate(&uuid); -- 2.30.2